import Cookie from "js-cookie"
import Not from "../views/NotFound.vue"

export default{
  state:{
    isCollapse:false,   //控制菜单的展开还是收起
    tabList:[
      {
        path: "/",
        name: "home",
        label: "首页",
        icon: "s-home",
        url: "Home/Home",
      },
    ],//面包屑
    menu:[],
  },
  mutations:{
    // 修改菜单展开收起的方法
    collapseMenu(state){
      state.isCollapse=!state.isCollapse
    },
    // 标签添加
    selectMenu(state,val){
      if(val.name!=='home'){
        let index=state.tabList.findIndex(item=>item.name===val.name)
        if(index===-1){
          state.tabList.push(val)
        }
      }
    },
    // 关闭标签
    close(state,item){
      const index=state.tabList.findIndex(list=>list.name===item.name)
      state.tabList.splice(index,1)
    },
    // 设置menu路由的数据
    setMenu(state,val){
      state.menu=val
      // 将数据存入Cooike中
      Cookie.set('menu',JSON.stringify(val))
    },
    // 动态注册路由
    addMenu(state,router){
      // 判断缓存中是否存在
      if(!Cookie.get('menu')) return
      const menu=JSON.parse(Cookie.get('menu'))
      state.menu=menu
      // 组装动态路由的数据
      const menuArray=[]  
      menu.forEach(item => {
        // 判断是否有子路由
        if(item.children){
          item.children=item.children.map(child=>{
            child.component=()=> import(`../views/${child.url}`)
            return child
          })
          menuArray.push(...item.children)
        }else{
          item.component=()=> import(`../views/${item.url}`)
          menuArray.push(item)
        }
      });
      console.log('5555',menuArray)
      // 将路由动态添加
      menuArray.forEach(item=>{
        router.addRoute('main',item)
      })
    }
  }
}